Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
본문으로 건너뛰기

CloudTrail Trails

AWS CloudTrail은 AWS 인프라 전반에서 계정 활동을 모니터링하고 기록하여 스토리지, 분석 및 해결 작업에 대한 제어를 제공합니다. Trail은 CloudTrail 이벤트를 지정한 Amazon Simple Storage Service(Amazon S3) 버킷으로 전달하는 데 도움이 되는 구성입니다.

CloudTrail은 AWS 인프라에서 계정 활동을 모니터링하고 기록하기 위한 세 가지 유형의 trail을 제공합니다. 첫 번째 유형은 모든 AWS 리전의 활동을 캡처하는 다중 리전 trail입니다. 기본적으로 AWS Management Console을 통해 trail을 생성하면 모든 리전에 적용됩니다. 두 번째 유형은 AWS CLI에서만 사용 가능한 단일 리전 trail로, 특정 리전의 활동을 캡처합니다. 그러나 더 넓은 범위를 위해 다중 리전 trail을 사용하는 것을 권장합니다.

마지막으로, AWS Organizations 서비스를 사용할 때 조직 내 모든 AWS 계정에 적용되는 조직 trail이 있습니다. 이 유형의 trail은 다중 계정 환경에서 포괄적인 범위와 중앙 집중식 모니터링을 제공합니다.

이러한 trail 유형을 사용하면 리전 수준에서 또는 전체 조직에 걸쳐 모니터링 및 기록 요구 사항에 맞게 CloudTrail 설정을 조정할 수 있습니다. 다음은 CloudTrail Trails에 대한 몇 가지 모범 사례입니다.

모든 AWS 계정 및 리전에서 CloudTrail 구성

AWS 계정의 사용자, 역할 또는 서비스가 수행한 이벤트의 완전한 기록을 얻으려면 모든 AWS 리전에서 이벤트를 로깅하도록 각 trail을 구성합니다. 회사 또는 조직에서 사용하는 모든 AWS 계정에 이러한 trail을 설정합니다. 이 설정을 통해 이벤트가 발생한 AWS 리전에 관계없이 모든 이벤트가 로깅됩니다. 결과적으로 그렇지 않으면 사용되지 않는 리전에서의 예상치 못한 활동을 감지할 수 있습니다. 글로벌 서비스 이벤트(예: AWS Identity and Access Management 및 Amazon Route 53)도 포함되어 로깅됩니다. 모든 리전에 적용되는 trail을 생성하면 새로운 AWS 리전이 자동으로 포함됩니다. AWS Organizations를 통한 다중 계정 설정이 있는 경우 해당 조직의 모든 AWS 계정에 대한 모든 이벤트를 로깅하는 trail을 생성할 수 있습니다.

다양한 사용 사례에 대해 별도의 trail 설정

CloudTrail은 감사, 보안 모니터링, 운영 문제 해결과 같은 사용 사례를 지원합니다. AWS는 각 팀에 필요한 정보를 제공할 수 있도록 각 사용 사례에 대해 여러 trail을 설정할 것을 권장합니다. 이를 위해 다른 사용자가 관리할 trail을 생성합니다. trail은 별도의 S3 버킷에 로그 파일을 전달하도록 구성할 수 있습니다. 예를 들어, 보안 관리자는 모든 리전에 적용되는 trail을 만들고 하나의 AWS Key Management Service(AWS KMS) 키로 로그 파일을 암호화하며 로그 파일 검증을 활성화할 수 있습니다. 같은 회사의 개발자는 한 리전에만 적용되는 trail을 만들고 특정 API 활동 알림을 수신하도록 Amazon CloudWatch 알람을 구성할 수 있습니다.

CloudTrail 로그를 제한된 접근 권한이 있는 별도의 보안 경계(별도 AWS 계정)의 S3 버킷으로 전달하도록 구성

감사 목적으로, 별도의 관리 도메인에 있는 전용 S3 버킷에 로그 파일을 저장하면 엄격한 보안 제어와 직무 분리를 적용할 수 있습니다. 이 S3 버킷에 대한 접근을 제한하면 로그에 대한 무단 및 무제한 접근 가능성이 줄어듭니다. 이러한 제어를 마련하면 AWS 계정 자격 증명이 손상되더라도 로그가 별도의 도메인에 저장되어 있으므로 손실되지 않습니다.

로그 파일을 저장하는 Amazon S3 버킷에서 MFA 삭제 및 버전 관리 활성화

이 S3 버킷에 멀티 팩터 인증(MFA)을 구성하면 버킷이나 버킷 내의 객체를 영구적으로 삭제하기 위해 추가 인증이 필요하도록 할 수 있습니다. MFA 외에도 버전 관리가 활성화된 버킷은 실수로 인한 삭제 또는 덮어쓰기로부터 객체를 복구하는 데 도움이 될 수 있습니다. 예를 들어, 객체를 삭제하면 Amazon S3는 객체를 영구적으로 제거하는 대신 삭제 마커를 삽입합니다. 대부분의 AWS 사용자와 관리자가 악의적인 의도를 가지고 있지 않더라도, 누군가가 실수로 중요한 로그 파일을 저장하는 S3 버킷을 삭제할 수 있습니다. 이러한 안전 장치를 추가하면 손상된 로그 파일의 위험을 줄일 수 있습니다.

CloudTrail 로그 파일 무결성 검증 활성화

CloudTrail 로그 파일 무결성 검증을 사용하면 로그 파일이 삭제되거나 변경되었는지 알 수 있습니다. 또한 이 검증을 사용하여 특정 기간 동안 계정에 로그 파일이 전달되지 않았는지 확인할 수 있습니다. 이러한 통찰력은 보안 및 포렌식 조사에서 매우 유용합니다. 로그 파일의 무결성을 보장하기 위한 추가 보호 계층을 제공합니다. CloudTrail 로그 파일 무결성 검증은 업계 표준 알고리즘(해싱에 SHA-256, 디지털 서명에 RSA와 함께 SHA-256)을 사용하여 감지 없이 로그 파일을 수정하는 것이 계산적으로 불가능합니다.

CloudTrail 로그 파일을 저장 시 암호화

기본적으로 CloudTrail이 버킷에 전달하는 로그 파일은 Amazon S3 관리 암호화 키(SSE-S3)를 사용한 Amazon 서버 측 암호화로 암호화됩니다. 직접 관리할 수 있는 보안 계층을 제공하려면, CloudTrail 로그 파일에 대해 AWS KMS 관리 키(SSE-KMS)를 사용한 서버 측 암호화를 대신 사용할 수 있습니다.

Trail에 대한 데이터 이벤트 활성화

데이터 이벤트는 S3 및 AWS Lambda에서 수행되는 리소스 작업에 대한 가시성을 제공합니다. 이러한 이벤트는 데이터 플레인 작업이라고도 합니다. 데이터 이벤트는 특히 S3에 민감한 데이터를 저장하거나 Lambda 함수를 통해 핵심 비즈니스 작업이 수행되는 경우 대량의 활동을 발생시키는 경우가 많습니다. 민감한 데이터에 대한 예상치 못한 접근에 대한 가시성을 통해 데이터를 보호하기 위한 시정 조치를 취할 수 있습니다. 일부 컴플라이언스 보고서(예: FedRAMP 및 PCI-DSS)는 데이터 이벤트를 활성화해야 하므로, AWS는 모든 S3 버킷에 대해 최소 하나의 trail이 S3 데이터 이벤트를 로깅하고 있는지 확인하기 위해 AWS Config 관리형 규칙 또는 적절한 Conformance Pack 샘플 템플릿을 사용할 것을 권장합니다.

데이터 이벤트에 advanced event selectors 사용

데이터 이벤트를 사용할 때, advanced event selectors는 데이터 이벤트 로깅에 대한 더 세분화된 제어를 제공합니다. Advanced event selectors를 사용하면 EventSource, EventName 및 ResourceARN과 같은 필드에서 값을 포함하거나 제외할 수 있습니다. Advanced event selectors는 정규 표현식과 유사하게 부분 문자열에 대한 패턴 매칭으로 값을 포함하거나 제외하는 것도 지원합니다. 이를 통해 로깅하고 비용을 지불할 CloudTrail 데이터 이벤트에 대한 더 많은 제어를 제공합니다. 예를 들어, S3 DeleteObject API를 로깅하여 수신하는 CloudTrail 이벤트를 파괴적 작업에만 좁혀 비용을 제어하면서 보안 문제를 식별할 수 있습니다. 감사를 위해 CloudTrail을 사용할 때는 모든 데이터 이벤트를 기록하는 것이 모범 사례입니다. 그러나 운영 모니터링이나 다른 사용 사례에 데이터 이벤트를 사용할 때는 advanced event selectors가 매우 유용할 수 있습니다.

CloudTrail을 Amazon CloudWatch Logs와 통합

Amazon CloudWatch는 로그, 메트릭, 이벤트 형태의 모니터링 및 운영 데이터를 수집하는 데 도움을 줍니다. CloudTrail을 CloudWatch Logs와 통합하면 CloudTrail이 캡처한 특정 이벤트를 거의 실시간으로 모니터링하고 알림을 수신할 수 있습니다. 예를 들어, 비정상적인 AWS API 활동에 대한 알람 및 알림을 설정할 수 있습니다.

CloudTrail을 CloudWatch Logs와 통합하면 CloudWatch Insights가 생성한 데이터를 시각화할 수도 있습니다. 이러한 인사이트를 통해 필요한 데이터를 추출할 수 있어 쿼리 프로세스를 단순화합니다. 예를 들어, CloudWatch Logs를 사용하여 로그를 Amazon Elasticsearch Service로 거의 실시간으로 스트리밍한 다음 Kibana 엔드포인트에 접근하여 데이터를 시각화할 수 있습니다.

모든 리전에 Trail 적용

IAM ID 또는 서비스가 AWS 계정에서 수행한 모든 작업을 캡처하려면 모든 리전에서 이벤트를 로깅하도록 각 trail을 구성합니다. 모든 리전에서 이벤트를 로깅하면 발생하는 리전에 관계없이 AWS 계정에서 발생하는 모든 이벤트가 로깅됩니다.

CloudTrail 로그를 중앙 S3 버킷으로 전달

제한된 접근 권한이 있는 별도의 AWS 계정의 중앙 S3 버킷으로 CloudTrail 로그가 전달되도록 구성합니다. Amazon S3 접근 정책을 정의하여 CloudTrail이 전달하는 로그에 접근할 수 있는 사람의 권한을 제한할 수 있습니다. 이를 통해 로그에 대한 무단 접근을 최소화할 수 있습니다.

로그 파일을 저장하는 S3 버킷에 데이터 보호 구성

이를 위해 다음 작업을 수행합니다:

  • 멀티 팩터 인증(MFA)을 활성화하여 S3 버킷에 추가 보안 수준을 추가합니다. MFA는 버킷을 삭제하거나 버킷 내의 객체를 삭제하는 모든 요청에 대해 두 가지 형태의 인증을 요구합니다.
  • S3 버킷에서 버전 관리를 활성화하여 원치 않는 삭제 또는 변경으로부터 객체를 복구하는 데 도움을 줍니다. 이 추가 보호 계층을 추가하면 파일 변경 위험을 줄일 수 있습니다.
  • CloudTrail 로그 파일에 대한 암호화를 활성화하여 S3 버킷에 전달되는 로그 파일을 암호화하는 추가 안전 장치를 추가합니다.
  • 로그 파일 검증을 구성하여 CloudTrail이 전달한 로그 파일이 전달 후 변경되지 않았는지 확인합니다.

S3 버킷에 객체 수명 주기 관리 구성

CloudTrail의 기본 trail은 trail에 대해 구성된 S3 버킷에 로그 파일을 무기한으로 저장합니다. Amazon S3 객체 수명 주기 관리 규칙을 사용하여 비즈니스 및 감사 요구에 더 잘 맞는 자체 보존 정책을 정의할 수 있습니다. 예를 들어, 1년이 지난 로그 파일을 Amazon Simple Storage Service Glacier(Amazon S3 Glacier)와 같은 다른 스토리지 계층으로 아카이브할 수 있습니다. 또 다른 예로는 일정 기간이 지난 로그 파일을 삭제하는 것입니다.

AWSCloudTrail_FullAccess 정책에 대한 접근 제한

이 정책에 대한 접근을 제한하는 이유는 다음과 같습니다:

  • AWSCloudTrail_FullAccess 정책을 가진 사용자는 AWS 계정에서 중요하고 핵심적인 감사 기능을 비활성화하거나 재구성할 수 있습니다.
  • 이 정책은 AWS 계정의 IAM ID에 광범위하게 공유되거나 적용하도록 의도된 것이 아닙니다. 이 정책의 적용을 AWS 계정 관리자로 활동할 것으로 예상되는 개인에게만 제한합니다.